package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.manager.generico.ManagerPesquisarGenerico;
import br.com.foxinline.modelo.Quadra;
import br.com.foxinline.servico.CidadeServico;
import br.com.foxinline.servico.QuadraServico;
import br.com.foxinline.util.GrupoUtilitario;
import br.com.foxinline.util.Msg;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.security.DeclareRoles;
import javax.ejb.EJB;
import javax.ejb.EJBAccessException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author ely
 */
@ViewScoped
@ManagedBean
@DeclareRoles(GrupoUtilitario.ADMINISTRADOR)
public class ManagerPesquisarQuadra extends ManagerPesquisarGenerico<Quadra> {

    @EJB
    QuadraServico quadraServico;
    @EJB
    CidadeServico cidadeServico;
    private Quadra quadra;
    private Quadra quadraDelete;
    private List<Quadra> quadras;

    @Override
    @PostConstruct
    public void init() {

        setServico(quadraServico);

        this.quadra = new Quadra();
        this.quadraDelete = new Quadra();
        this.quadras = new ArrayList<Quadra>();
    }

    @Override
    public void pesquisar() {
        this.entidadePesquisar = this.quadra;

        getSearchResults().setFirst(0);
        onLoadModel();
    }

    @Override
    public void limpar() {
        init();
    }

    @Override
    public void remover() {

        try {
            this.quadraDelete.setAtivo(Boolean.FALSE);
            quadraServico.update(this.quadraDelete);
            Msg.messagemInfo(Msg.SuccessFull);

        } catch (EJBAccessException e) {

            System.err.println(e);
            Msg.messagemWarn(Msg.PermissaoNegada);
        }
    }

    public Quadra getQuadra() {
        return quadra;
    }

    public void setQuadra(Quadra quadra) {
        this.quadra = quadra;
    }

    public Quadra getQuadraDelete() {
        return quadraDelete;
    }

    public void setQuadraDelete(Quadra quadraDelete) {
        this.quadraDelete = quadraDelete;
    }

    public List<Quadra> getQuadras() {
        return quadras;
    }

    public void setQuadras(List<Quadra> quadras) {
        this.quadras = quadras;
    }
}
